﻿//勿改

//
importPackage(java.lang);
importPackage(Packages.tools);
importPackage(Packages.client);
importPackage(Packages.server);
importPackage(Packages.tools.packet);

var 增幅等级 = [
    //等级1 四维2 攻击3 魔力4 成功几率(填90=90%成功)5 金币数量6 点券数量7 强化石数量8 失败是否会下降(true = 会降级 false = 不会降级)9 额外材料ID(没有就填false)10 额外材料数量(没有就填false)11
    [1, 1, 0, 0, 80, 1000000, 0, 3000, false, false, false],
    [2, 1, 0, 0, 80, 2000000, 0, 3000, false, false, false],
    [3, 1, 0, 0, 80, 3000000, 0, 3000, false, false, false],
    [4, 1, 0, 0, 80, 4000000, 0, 3000, false, false, false],
    [5, 1, 0, 0, 80, 5000000, 0, 3000, false, false, false],
    [6, 1, 0, 0, 80, 5000000, 0, 5000, false, false, false],
    [7, 1, 0, 0, 80, 5000000, 0, 5000, false, false, false],
    [8, 1, 0, 0, 80, 5000000, 0, 5000, false, false, false],
    [9, 1, 0, 0, 80, 5000000, 0, 5000, false, false, false],
    [10, 1, 1, 1, 80, 10000000, 0, 10000, false, false, false],
    [11, 1, 0, 0, 80, 5000000, 0, 8000, false, false, false],
    [12, 1, 0, 0, 80, 5000000, 0, 8000, false, false, false],
    [13, 1, 0, 0, 80, 5000000, 0, 8000, false, false, false],
    [14, 1, 0, 0, 80, 5000000, 0, 10000, false, false, false],
    [15, 1, 0, 0, 80, 5000000, 0, 10000, false, false, false],
    [16, 1, 0, 0, 80, 5000000, 0, 10000, false, false, false],
    [17, 1, 0, 0, 80, 5000000, 0, 15000, false, false, false],
    [18, 1, 0, 0, 80, 5000000, 0, 15000, false, false, false],
    [19, 1, 0, 0, 80, 5000000, 0, 15000, false, false, false],
    [20, 1, 1, 1, 80, 30000000, 20000, 50000, false, false, 5],
    [21, 1, 0, 0, 60, 50000, 1000, 500, false, false, 1],
    [22, 1, 0, 0, 60, 50000, 1500, 500, true, false, 1],
    [23, 1, 0, 0, 60, 50000, 1500, 500, true, false, 1],
    [24, 1, 0, 0, 60, 50000, 2000, 500, true, false, 1],
    [25, 1, 0, 0, 60, 50000, 5000, 2500, true, false, 1],
    [26, 1, 0, 0, 60, 50000, 1500, 500, false, false, 1],
    [27, 1, 0, 0, 60, 50000, 2000, 500, true, false, 1],
    [28, 1, 0, 0, 60, 50000, 2000, 500, true, false, 2],
    [29, 1, 0, 0, 60, 50000, 2000, 500, true, false, 2],
    [30, 1, 2, 2, 60, 300000, 50000, 10000, true, false, 10],
    [31, 0, 1, 1, 55, 10000, 2000, 500, false, false, 1],
    [32, 0, 1, 1, 55, 10000, 4000, 500, true, false, 1],
    [33, 0, 1, 1, 55, 10000, 5000, 500, true, false, 1],
    [34, 0, 1, 1, 55, 10000, 5000, 500, true, false, 2],
    [35, 0, 1, 1, 55, 10000, 5000, 3000, true, false, 2],
    [36, 0, 1, 1, 55, 10000, 10000, 500, false, false, 2],
    [37, 0, 1, 1, 55, 10000, 10000, 500, true, false, 2],
    [38, 0, 1, 1, 55, 10000, 10000, 500, true, false, 2],
    [39, 0, 1, 1, 55, 10000, 10000, 500, true, false, 3],
    [40, 0, 3, 3, 50, 500000, 30000, 15000, true, false, 20],
    [41, 0, 2, 2, 55, 20000, 5000, 500, false, false, 2],
    [42, 0, 2, 2, 55, 20000, 6000, 500, true, false, 2],
    [43, 0, 2, 2, 55, 20000, 7000, 500, true, false, 2],
    [44, 0, 2, 2, 55, 20000, 8000, 500, true, false, 2],
    [45, 0, 2, 2, 55, 20000, 9000, 500, true, false, 5],
    [46, 0, 2, 2, 55, 20000, 20000, 500, false, false, 5],
    [47, 0, 2, 2, 55, 20000, 10000, 500, true, false, 5],
    [48, 0, 2, 2, 55, 20000, 15000, 1000, true, false, 5],
    [49, 0, 2, 2, 55, 20000, 20000, 2000, true, false, 5],
    [50, 0, 5, 5, 195, 100000000, 150000, 300000, false, false, 50]
];
var 不打勾 = "#fUI/UIWindow.img/PartySearch/check0#"; //不打勾
var 打勾 = "#fUI/UIWindow.img/PartySearch/check1#"; //打钩

//200 116 130
var 最高增幅 = 50;
var 绑定材料ID = 4251201;
var 不绑定材料ID = 4251202;

var 低保需要次数 = 100;

var 目前装备增幅等级 = 0;
var 当前增幅等级 = 0;
var 几率 = 0;
var 成功几率额外增加 = 10;
var text = "";
var status = 0;
var conn;

var 项链ID = 1122252;

var 羽毛ID = 4000313;
var 羽毛数量 = 20;
function start() {
    status = -1;
    action(1, 0, 0);
}


function action(mode, type, selection) {
    if (mode == -1) {
        cm.dispose();
    } else {
        if (mode == 1) {
            status++;
        } else {
            status--;
        }
        //
        if (status == -1) {
            cm.dispose();
        } else if (status == 0) {

            if (cm.getInventory(1).isFull(0)) {
                cm.sendOk("对不起,您的背包装备栏不足.\r\n");
                cm.dispose();
                return;
            }
            if (cm.getInventory(1).getItem(1) == null) {
                cm.sendOk("对不起,您的背包第一格没有#v" + 项链ID + "#,请放入#v" + 项链ID + "#查看.\r\n");
                cm.dispose();
                return;
            }
            if (cm.getInventory(1).getItem(1).getItemId() != 项链ID) {
                cm.sendOk("对不起,您的背包第一格不是#v" + 项链ID + "#,请放入#v" + 项链ID + "#查看.\r\n");
                cm.dispose();
                return;
            }
            var ii = MapleItemInformationProvider.getInstance();
            if (cm.getInventory(1).getItem(1).getExpiration() != -1) {
                cm.sendOk("不允许增幅限时装备.\r\n");
                cm.dispose();
                return;
            }
            if (cm.isCash(cm.getInventory(1).getItem(1).getItemId()) == true) {
                cm.sendOk("不允许增幅现金装备.\r\n");
                cm.dispose();
                return;
            }
            //获取当前装备增幅等级
            var 装备名片 = "" + cm.getInventory(1).getItem(1).getOwner();
            if (装备名片 != "") {
                当前增幅等级 = 装备名片.replace(/[^0-9]/ig, ""); //提取字符串裡面的数字
                if (当前增幅等级 > 0) {
                    当前增幅等级 = 装备名片.replace(/[^0-9]/ig, ""); //提取字符串裡面的数字
                    if (当前增幅等级 >= 最高增幅) {
                        cm.sendOk("已经增幅到顶级!\r\n");
                        cm.dispose();
                        return;
                    }
                }
            } else {
                当前增幅等级 = 0;
            }
            //计算费用 //等级0 四维1 攻击2 魔力3 成功几率(填90=90%成功)4 金币数量5 点券数量6 强化石数量7 失败是否会下降(true = 会降级 false = 不会降级)8 额外材料ID(没有就填false)9 额外材料数量(没有就填false)10
            材料数量 = 增幅等级[当前增幅等级][7];
            点券数量 = 增幅等级[当前增幅等级][6];
            金币数量 = 增幅等级[当前增幅等级][5];
            失败后是否下降 = 增幅等级[当前增幅等级][8];
            特殊道具ID = 增幅等级[当前增幅等级][9];
            特殊道具数量 = 增幅等级[当前增幅等级][10];
            //
            if (失败后是否下降) {
                var 失败提示 = "#r#e失败后增幅等级会下降一级#k#n";
            } else {
                var 失败提示 = "#e没任何变化#k#n";
            }
            if (cm.getPlayer().getOneTimeLog("项链增幅强化类型") == 0) {
                材料ID = 4000089;
            } else {
                材料ID = 4000089;
            }
            几率 = 增幅等级[当前增幅等级][4];
            if (cm.getPlayer().getOneTimeLog("项链增幅是否用羽毛") == 0) {
                几率 = 几率 + 成功几率额外增加;
            }
            text = " ┏━━━━━━━━━[项链·增幅]━━━━━━━━━┓\r\n";
            text += "                   #L0##d[开始增幅]#l\r\n";
            text += "   #L991##d" + (cm.getPlayer().getOneTimeLog("项链增幅强化类型") == 0 ? 打勾 : 不打勾) + "使用绑定的强化石#l  #L992##d" + (cm.getPlayer().getOneTimeLog("项链增幅强化类型") == 0 ? 不打勾 : 打勾) + "使用不绑定强化石#l\r\n";
            text += "   #L993##b" + (cm.getPlayer().getOneTimeLog("项链增幅是否用羽毛") == 0 ? 打勾 : 不打勾) + "使用羽毛增加10%成功率#l\r\n\r\n";
            text += "\t#r·#k最高+" + 最高增幅 + "\r\n";
            text += "\t#r·#k当前项链:#v" + cm.getInventory(1).getItem(1).getItemId() + "#\r\n";
            text += "\t#r·#k当前增幅等级:" + 当前增幅等级 + "→" + (parseInt(当前增幅等级) + 1) + "\r\n";
            text += "\t#r·#k成功几率:" + (parseInt(几率) + 5) + "%\r\n";
            text += "\t#r·#k增加属性:四维[#r" + 增幅等级[当前增幅等级][1] + "#k]/攻击[#r" + 增幅等级[当前增幅等级][2] + "#k]/魔力[#r" + 增幅等级[当前增幅等级][3] + "#k]\r\n";
            text += "\t#r·#k增幅失败会导致:" + 失败提示 + "\r\n";
            text += " ┏━━━━━━━━━[需要·材料]━━━━━━━━━┓\r\n";
            text += "\t#r·#k需要强化石:" + 材料数量 + "个\r\n";
            if (点券数量 > 0) {
                text += "\t#r·#k需要点券:" + 点券数量 + "\r\n";
            }
            text += "\t#r·#k需要金币:" + 金币数量 + "\r\n";
            if (特殊道具ID != false) {
                text += "\t#r·#k需要#v" + 特殊道具ID + "#:" + 特殊道具数量 + "\r\n";
            }
            text += "\t#r·#k使用#v" + 羽毛ID + "#:" + 羽毛数量 + "个[可提高10%成功率]\r\n";
            text += "\r\n#k ┗━━━━━━━━━━━━━━━━━━━━━━━━┛\r\n";
            cm.sendSimple(text);
        } else if (status == 1) {
            //
            var 是否是点券 = 0;
            var 是否启用保护券 = 0;
            if (selection == 991 || selection == 992) {
                if (cm.getPlayer().getOneTimeLog("项链增幅强化类型") == 0) {
                    cm.getPlayer().setOneTimeLog("项链增幅强化类型", +1);//角色永久 CS值 给与
                    cm.sendOk("切换成功,请重新打开NPC!\r\n");
                    cm.dispose();
                    return;
                } else {
                    cm.getPlayer().setOneTimeLog("项链增幅强化类型", -cm.getPlayer().getOneTimeLog("项链增幅强化类型"));//角色永久 CS值 给与
                    cm.sendOk("切换成功,请重新打开NPC!\r\n");
                    cm.dispose();
                    return;
                }
            } else if (selection == 993) {
                if (cm.getPlayer().getOneTimeLog("项链增幅是否用羽毛") == 0) {
                    cm.getPlayer().setOneTimeLog("项链增幅是否用羽毛", +1);//角色永久 CS值 给与
                    cm.sendOk("切换成功,请重新打开NPC!\r\n");
                    cm.dispose();
                    return;
                } else {
                    cm.getPlayer().setOneTimeLog("项链增幅是否用羽毛", -cm.getPlayer().getOneTimeLog("项链增幅是否用羽毛"));//角色永久 CS值 给与
                    cm.sendOk("切换成功,请重新打开NPC!\r\n");
                    cm.dispose();
                    return;
                }
            }
            if (selection == 0) {
                //判断材料
                if (cm.getPlayer().getItemQuantity(材料ID, false) < 材料数量) {
                    cm.sendOk("材料#v" + 材料ID + "#不足" + 材料数量 + "个!\r\n");
                    cm.dispose();
                    return;
                }
                //
                //
                if (cm.getPlayer().getItemQuantity(4033610, false) < 1) {
                    if (cm.getPlayer().getCSPoints(1) < 点券数量) {
                        cm.sendOk("点券不足" + 点券数量 + "\r\n");
                        cm.dispose();
                        return;
                    }
                    if (cm.getMeso() < 金币数量) {
                        cm.sendOk("金币不足" + 金币数量 + "\r\n");
                        cm.dispose();
                        return;
                    }
                }
                //
                if (特殊道具ID != false) {
                    if (cm.getPlayer().getItemQuantity(特殊道具ID, false) < 特殊道具数量) {
                        cm.sendOk("材料#v" + 特殊道具ID + "#不足" + 特殊道具数量 + "个!\r\n");
                        cm.dispose();
                        return;
                    }
                    cm.gainItem(特殊道具ID, -特殊道具数量);
                }
                if (cm.getPlayer().getOneTimeLog("项链增幅是否用羽毛") == 0) {
                    if (cm.getPlayer().getItemQuantity(羽毛ID, false) < 羽毛数量) {
                        cm.sendOk("材料#v" + 羽毛ID + "#不足" + 羽毛数量 + "个!\r\n");
                        cm.dispose();
                        return;
                    }
                    cm.gainItem(羽毛ID, -羽毛数量);
                }
                //
                //扣除材料
                if (cm.getPlayer().getItemQuantity(4033610, false) < 1) {
                    cm.gainMeso(- 金币数量);//扣除多少金币
                    cm.gainNX(-点券数量);//扣点券
                } else {
                    cm.gainItem(4033610, -1);
                }
                cm.gainItem(材料ID, -材料数量);
                //
                //
            } else {
                cm.sendOk("你当前第一格装备还不支持增幅!\r\n");
                cm.dispose();
                return;
            }
            //
            //开始增幅
            if (是否是点券 == 1) {
                cm.getPlayer().setOneTimeLog("项链的增幅次数", +1);
            }
            //成功几率
            if (cm.getPlayer().getOneTimeLog("项链的增幅次数") >= 低保需要次数) {
                几率 = 99;
            }
            var 百分比几率 = Math.floor(Math.random() * (100 - 1 + 1) + 1);
            if (百分比几率 > 几率) {
                if (失败后是否下降) {
                    var toDrop = cm.getChar().getInventory(Packages.client.inventory.MapleInventoryType.EQUIP).getItem(1).copy();
                    //
                    toDrop.setStr(toDrop.getStr() - 增幅等级[当前增幅等级 - 1][1]);//力量
                    toDrop.setDex(toDrop.getDex() - 增幅等级[当前增幅等级 - 1][1]);//敏捷
                    toDrop.setInt(toDrop.getInt() - 增幅等级[当前增幅等级 - 1][1]);//智力
                    toDrop.setLuk(toDrop.getLuk() - 增幅等级[当前增幅等级 - 1][1]);//运气
                    toDrop.setWatk(toDrop.getWatk() - 增幅等级[当前增幅等级 - 1][2]);//屋里
                    toDrop.setMatk(toDrop.getMatk() - 增幅等级[当前增幅等级 - 1][3]);//魔法
                    //
                    toDrop.setOwner("增幅+" + (parseInt(当前增幅等级) - 1) + "")//名片
                    //
                    Packages.server.MapleInventoryManipulator.removeFromSlot(cm.getC(), Packages.client.inventory.MapleInventoryType.EQUIP, 1, 1, false);
                    Packages.server.MapleInventoryManipulator.addFromDrop(cm.getC(), toDrop, false);
                    cm.getPlayer().dropMessage(-1, "增幅失败,项链降级了!!!!!");
                    cm.getPlayer().dropMessage(-1, "增幅失败,项链降级了!!!!!");
                    cm.getPlayer().dropMessage(-1, "增幅失败,项链降级了!!!!!");
                    cm.dispose();
                    cm.openNpc(9900001, "花老师_新_增幅[十周年项链]");
                    return;
                } else {
                    cm.getPlayer().dropMessage(-1, "增幅失败,项链没有任何变化!!!!!");
                    cm.getPlayer().dropMessage(-1, "增幅失败,项链没有任何变化!!!!!");
                    cm.getPlayer().dropMessage(-1, "增幅失败,项链没有任何变化!!!!!");
                    cm.dispose();
                    cm.openNpc(9900001, "花老师_新_增幅[十周年项链]");
                    return;
                }
            }
            //成功
            var toDrop = cm.getChar().getInventory(Packages.client.inventory.MapleInventoryType.EQUIP).getItem(1).copy();
            //
            toDrop.setStr(toDrop.getStr() + 增幅等级[当前增幅等级][1]);//力量
            toDrop.setDex(toDrop.getDex() + 增幅等级[当前增幅等级][1]);//敏捷
            toDrop.setInt(toDrop.getInt() + 增幅等级[当前增幅等级][1]);//智力
            toDrop.setLuk(toDrop.getLuk() + 增幅等级[当前增幅等级][1]);//运气
            toDrop.setWatk(toDrop.getWatk() + 增幅等级[当前增幅等级][2]);//屋里
            toDrop.setMatk(toDrop.getMatk() + 增幅等级[当前增幅等级][3]);//魔法
            // if (增幅等级[当前增幅等级][0] == 50) {
            
            // }
            //
            toDrop.setOwner("增幅+" + 增幅等级[当前增幅等级][0] + "")//名片
            //
            Packages.server.MapleInventoryManipulator.removeFromSlot(cm.getC(), Packages.client.inventory.MapleInventoryType.EQUIP, 1, 1, false);
            Packages.server.MapleInventoryManipulator.addFromDrop(cm.getC(), toDrop, false);
            //
            //
            if (几率 == 99) {
                cm.getPlayer().setOneTimeLog("项链的增幅次数", -低保需要次数);
            }
            var 第一格装备 = cm.getInventory(1).getItem(1);
            cm.itemlaba("【项链增幅】", "玩家 [" + cm.getPlayer().getName() + "] 的 [+" + (parseInt(当前增幅等级)) + "" + cm.getItemName(cm.getInventory(1).getItem(1).getItemId()) + "] → [+" + (parseInt(当前增幅等级) + 1) + "]增幅成功.", 第一格装备, 15);
            cm.getPlayer().dropMessage(-1, "增幅成功,恭喜你!!!!!");
            cm.getPlayer().dropMessage(-1, "增幅成功,恭喜你!!!!!");
            cm.getPlayer().dropMessage(-1, "增幅成功,恭喜你!!!!!");
            cm.dispose();
            cm.openNpc(9900001, "花老师_新_增幅[十周年项链]");
            return;
        }
    }
    //
}